#include <stdio.h>
#include "mtlib.c"

int main(void) {
  unsigned char c1, c2;
  unsigned long int conexion1, conexion2;
  mti_mensaje mensaje;
  c1 = mtf_obtener_descriptor(1024);
  c2 = mtf_obtener_descriptor(1024);
  printf("Centro 1: %hu, Centro 2: %hu\n", c1, c2);
  conexion1 = mtf_conectar(c1, MTP_INTERNO, (int) c2);
  while (!mtf_recibir_mensajes(c2));
  mensaje = mtf_siguiente_mensaje(c2);
  printf("Mensaje nuevo en centro 2: código %lu, remitente %lu, categoría %hu, tipo %hu\n", mensaje.codigo, mensaje.remitente, mensaje.categoria, mensaje.tipo);
  conexion2 = mensaje.remitente;
  mtf_descartar_mensaje(c2, mensaje.codigo);
  printf("Conexión 1-%hu: %lu, Conexión 2-%hu: %lu\n", mtf_conexion_es_interna(c1, conexion1), conexion1, mtf_conexion_es_interna(c2, conexion2), conexion2);
  mtf_desconectar(c2, conexion2);
  while (!mtf_recibir_mensajes(c1));
  mensaje = mtf_siguiente_mensaje(c1);
  printf("Mensaje nuevo en centro 1: código %lu, remitente %lu, categoría %hu, tipo %hu\n", mensaje.codigo, mensaje.remitente, mensaje.categoria, mensaje.tipo);
  mtf_descartar_mensaje(c1, mensaje.codigo);
  printf("Mensajes disponibles: centro 1: %lu, centro2: %lu\n", mtf_recibir_mensajes(c1), mtf_recibir_mensajes(c2));
  mtf_liberar_descriptor(c1);
  mtf_liberar_descriptor(c2);
  return 0;
}